#pragma once
#include <interface/aot_im_interface.h>
#include <string>
class im_packet_impl : public aot::im::iim_packet
{
public:
	im_packet_impl();
	virtual ~im_packet_impl();
public:
	virtual bool clone(aot::im::iim_packet** out);
	virtual bool assign(aot::im::iim_packet* p);
	virtual bool create_inet_pkt();
	virtual const char* get_call_id();
	virtual void set_call_id(const char* s);
	virtual bool is_offline_msg()
	{
		return 0 != (exh.flag & 0x04);
	}
public:
	bool encode();
	bool decode();
public:
	static aot::im::iim_packet* create_pkt();
public:
	std::string call_id_;
};
